Providing a thumbnail image that follows a main image

ABSTRACT

The technology relates to selecting and displaying images captured at different points in time. As an example, a user of a computing device may view a first street level image as viewed from a particular location and oriented in a particular direction. The user may select other time periods for which similar images are available. Upon selecting a particular time period, a second street level image may be displayed concurrently with the first street level image, wherein the second street level image was captured on or around the selected time period. If the user changes the perspective of the first image an automatic change in perspective of the second image may occur.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 14/258,709, filed Apr. 22, 2014, the entire disclosure of whichis incorporated herein by reference.

Various systems provide users with images of different locations,including panoramic images. For example, a panoramic image may includean image or collection of images having a field of view which is greaterthan that of the human eye, e.g., 180 degrees or greater. Some panoramicimages may provide a 360-degree view of a location.

Some systems allow users to view images in sequences, such as in time orspace. In some examples, these systems can provide a navigationexperience in a remote or interesting location. Some systems allow usersto feel as if they are rotating within a virtual world by clickingtoward the edges of a displayed portion of a panorama and having thepanorama appear to “rotate” in the direction of the clicked edge, orclicking and dragging on the displayed portion of the panorama andhaving it appear to “rotate” following the mouse cursor.

SUMMARY

Aspects of the disclosure provide a computer implemented method forselecting time-distributed panoramas for display. The method may includeone or more computing devices receiving a request for a first image at afirst location, wherein the first image will be displayed at a firstorientation and the first image has associated with a first time, andwherein each of the one or more computing devices includes one or moreprocessors. The method may further include determining at least oneother image based at least in part on the first location, wherein eachof the at least one other images are associated with a different timethan the first time. The method may also include providing for displaythe first image and an indication that the at least one other imagesassociated with different time are available. A request may be receivedfor a second image associated with a second time, wherein the secondimage is one of the at least one other images, and wherein the secondtime is different from the first time. In response to the receivedrequest, the second image may be provided for display concurrently withthe first image, wherein the second image is associated with the secondtime. In another example, the second image is provided for display sothat the orientation of the second image corresponds to the orientationof the first image.

The method may further include receiving input indicating a change to asecond orientation of the first image, and automatically providing fordisplay a transition in the second image so as to correspond to thesecond orientation of the first image. In another example, the methodmay include receiving a request for a third image associated with athird time, wherein the third image is one of the at least one otherimages, and wherein the third time is different from the second time. Inresponse to the received request for a third image, the second image maybe replaced with the third image, wherein the third image is providedfor display so that it corresponds to the first location and the firstorientation of the first image.

In yet another aspect, the method may include providing for display atimeline having a visual indicia of a given time period being displayed.In addition, receiving the request for the third image may include auser moving the visual indicia along the timeline from a first positionassociated with the second time to a second position associated with thethird time. In accordance with one aspect, replacing the second imagewith the third image may include the second image fading out and thethird image fading in as the user moves the visual indicia along thetimeline. The method may also include determining that one or moreintermediate images are associated with the location of the first image,wherein these intermediate images were captured at an intermediate timeperiod between the second time and the third time. Replacing the secondimage with the third image may further include replacing the secondimage with one or more intermediate images and replacing the one or moreintermediate images with the third image.

In still another aspect, the method may include providing for displayconcurrently with the first image one or more supplementary images thatrelate to the first image. In response to receiving the request for thesecond image, replacing one or more of the supplementary images withcorresponding supplementary images that correspond to the second time.

In another aspect, the method may include providing for display aplurality of supplementary images concurrently with the first image,wherein the supplementary images are selected from the at least oneother images, wherein the supplementary images are associated withdifferent time periods, and wherein each supplementary image has anorientation that corresponds to the orientation of the first image.

In still another aspect, the disclosure provides for a non-transitorycomputer-readable storage medium on which computer readable instructionsof a program are stored, the instructions, when executed by one or moreprocessors, cause the one or more processors to perform the methodsdescribed above.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an example of a system that may be used in accordance withaspects of the disclosure.

FIG. 2 is a diagram of various devices that may be used in connectionwith the example system.

FIG. 3 is a screen shot of a street level map view that may be displayedto a user.

FIG. 4 is a screen shot of a street level view that includes a thumbnailimage in accordance with aspects of the disclosure.

FIG. 5 is a screen shot wherein the thumbnail presents an image that wascaptured at an earlier date than the street level view.

FIG. 6 is a screen shot of a street level view and thumbnail view thathas been panned in accordance with aspects of the disclosure.

FIG. 7 is a screen shot of the street level view and associatedthumbnails displaying images from earlier dates.

FIG. 8 is a flow diagram describing an example of a method that may beused to implement the aspects of the disclosure.

DETAILED DESCRIPTION Overview

The technology relates to selecting and displaying images captured atdifferent points in time. As an example, a user of a computing devicemay view a street level panoramic image as viewed from a particularlocation and oriented in a particular direction. This image may bedisplayed in a main viewing area. In addition to this main image, thesystem may also provide another view of the same location, as itappeared at a different point in time. In one aspect, the computingdevice may display a thumbnail image that was captured at a date otherthan the date of image being displayed in the main viewing area. Inaddition, the thumbnail image may be displayed so that it corresponds tothe location and orientation of the panoramic image that is displayed inthe main viewing area. As an example, a user may be viewing a popularrestaurant and wonder what was at that location before the restaurant.Similarly, the user may wish to see what a particular location lookedlike during a certain time of year.

In one aspect, the computing device may display an icon indicating thatadditional street level images from other points in time are available.For example, a clock icon may be displayed in connection with the mainimage when imagery from another time period is available. Upon the userselecting the clock icon, the computing device may display the thumbnailimage that corresponds to the street level image being displayed in themain viewing area.

Corresponding thumbnail images may be selected from among a plurality ofpanoramic images to identify an image that was captured at a differentpoint in time than the main image but that has a capture location thatis closest to the capture location of the main image. Here, thedifferent point in time may refer to two different collection dates orpasses near the location of the given panoramic image.

In one example, the user may select the time period of the images to bedisplayed within the thumbnail viewing area by choosing a particularpoint along a displayed timeline. The timeline may include all timeperiods for which corresponding street level images are available, orthe user may select a particular range of time periods to be displayedwithin the timeline. In one aspect, the timeline may contain a pluralityof markers indicating points in time for which additional street levelimages are available.

The user may also transition between thumbnail images from differentpoints in time. For example, the user may slide a cursor along thedisplayed timeline from a first point in time to a second point in time.In one example, the transition of the thumbnail image may occur byfading out the image that corresponds to the first point in time andfading in the thumbnail image that corresponds to the second point intime as the cursor moves between the two time periods. In anotherexample, the computing device may display, in chronological order, someor all of the intermediate images that were taken between two points intime.

In one aspect of the disclosure, the orientation of the thumbnail imagemay always correspond to that of the main image that is displayed in themain viewing area. Accordingly, if the user causes the main image to panby 20 degrees to the left, then the thumbnail image may alsoautomatically pan 20 degrees to the left—or the panorama in thethumbnail may change so that the same area centered in the main view ispictured in the thumbnail. Other changes in the main viewing area mayalso automatically occur in the thumbnail image. For example, a changein the level of zoom or the location from which the main image is beingviewed may cause a corresponding change in the thumbnail image.Similarly, a change in the thumbnail image may also cause acorresponding change in the main image.

The computing device may also display a plurality of supplementarythumbnail images that are related to the main image in some way, such asbeing within a predetermined distance from the main image. In oneaspect, the supplementary images may correspond to the point in timethat has been selected by the user. Accordingly, as the user selects aparticular time period within the timeline, each of the supplementaryimages may be updated so as to correspond to the selected time period.

Example Systems

FIGS. 1 and 2 include an example system 100 in which the featuresdescribed herein may be implemented. It should not be considered aslimiting the scope of the disclosure or usefulness of the featuresdescribed herein. In this example, system 100 can include one or morecomputing devices 110, 120, 130, and 140, storage system 150, as well ascollection devices 160 and 170. One or more computing devices 110 cancontain one or more processors 112, memory 114 and other componentstypically present in general purpose computing devices. Memory 114 ofthe one or more computing devices 110 can store information accessibleby one or more processors 112, including instructions 116 that can beexecuted by the one or more processors 112.

Memory can also include data 118 that can be retrieved, manipulated orstored by the processor. The memory can be of any non-transitory typecapable of storing information accessible by the processor, such as ahard-drive, memory card, ROM, RAM, DVD, CD-ROM, write-capable, andread-only memories.

The instructions 116 can be any set of instructions to be executeddirectly, such as machine code, or indirectly, such as scripts, by theprocessor. In that regard, the terms “instructions,” “application,”“steps” and “programs” can be used interchangeably herein. Theinstructions can be stored in object code format for direct processingby the processor, or in any other computing device language includingscripts or collections of independent source code modules that areinterpreted on demand or compiled in advance. Functions, methods androutines of the instructions are explained in more detail below.

Data 118 can be retrieved, stored or modified by processor 112 inaccordance with the instructions 116. For instance, although the subjectmatter described herein is not limited by any particular data structure,the data can be stored in computer registers, in a relational databaseas a table having many different fields and records, or XML documents.The data can also be formatted in any computing device-readable formatsuch as, but not limited to, binary values, ASCII or Unicode. Moreover,the data can comprise any information sufficient to identify therelevant information, such as numbers, descriptive text, proprietarycodes, pointers, references to data stored in other memories such as atother network locations, or information that is used by a function tocalculate the relevant data.

The one or more processors 112 can include any conventional processors,such as one or more commercially available CPUs and/or GPUs.Alternatively, the processor can be a dedicated component such as anASIC or other hardware-based processor. Although not necessary, one ormore computing devices 110 may include specialized hardware componentsto perform specific computing processes, such as decoding video,matching video frames with images, distorting videos, encoding distortedvideos, etc. faster or more efficiently.

Although FIG. 1 functionally illustrates the processor, memory, andother elements of computing device 110 as being within the same block,the processor, computer, computing device, or memory can actuallycomprise multiple processors, computers, computing devices, or memoriesthat may or may not be stored within the same physical housing. Forexample, the memory can be a hard drive or other storage media locatedin one or more housings different from those of the one or morecomputing devices 110. Accordingly, references to a processor, computer,computing device, or memory will be understood to include references toa collection of processors, computers, computing devices, or memoriesthat may or may not operate in parallel. For example, the computingdevices 110 may include server computing devices operating as aload-balanced server farm. Yet further, although some functionsdescribed below are indicated as taking place on a single computingdevice having a single processor, various aspects of the subject matterdescribed herein can be implemented by a plurality of computing devices,for example, communicating information over network 180.

The one or more computing devices 110 can be at various nodes of anetwork 180 and capable of directly and indirectly communicating withother nodes of network 180. Although only a few computing devices aredepicted in FIGS. 1-2, it should be appreciated that a typical systemcan include a large number of connected computing devices, with eachdifferent computing device (as well as collection device) being at adifferent node of the network 180. The network 180 and intervening nodesdescribed herein can be interconnected using various protocols andsystems, such that the network can be part of the Internet, World WideWeb, specific intranets, wide area networks, or local networks. Thenetwork can utilize standard communications protocols, such as Ethernet,WiFi and HTTP, protocols that are proprietary to one or more companies,and various combinations of the foregoing. Although certain advantagesare obtained when information is transmitted or received as noted above,other aspects of the subject matter described herein are not limited toany particular manner of transmission of information.

As an example, the one or more computing devices 110 may include one ormore web servers that are capable of communicating with storage system150 as well as computing devices 120, 130, and 140 via the network. Forexample, one or more server computing devices 110 may use network 180 totransmit and present information to a user, such as user 220, 230, or240, on a display, such as displays 122, 132, or 142 of computingdevices 120, 130, or 140. In this regard, computing devices 120, 130,and 140 may be considered client computing devices and may perform allor some of the features described below.

Each of the client computing devices may be configured similarly to theserver computing devices 110, with one or more processors, memory andinstructions as described above. Each client computing device 120, 130or 140 may be a personal computing device intended for use by a user220, 250, 250, and have all of the components normally used inconnection with a personal computing device such as a central processingunit (CPU), memory (e.g., RAM and internal hard drives) storing data andinstructions, a display such as displays 122, 132, or 142 (e.g., amonitor having a screen, a touch-screen, a projector, a television, orother device that is operable to display information), and user inputdevice 124 (e.g., a mouse, keyboard, touchscreen or microphone). Theclient computing device may also include a camera for recording videostreams, speakers, a network interface device, and all of the componentsused for connecting these elements to one another.

Although the client computing devices 120, 130 and 140 may each comprisea full-sized personal computing device, they may alternatively comprisemobile computing devices capable of wirelessly exchanging data with aserver over a network such as the Internet. By way of example only,client computing device 120 may be a mobile phone or a device such as awireless-enabled PDA, a tablet PC, or a netbook that is capable ofobtaining information via the Internet. In another example, clientcomputing device 130 may be a head-mounted computing system. As anexample the user may input information using a small keyboard, a keypad,microphone, using visual signals with a camera, or a touch screen.

Storage system 150 may store various types of information. As describedin more detail below, the storage system 150 may store images, such asthose described above as having a field of view which is greater thanthat of the human eye, e.g., 180 degrees or greater. In that regard,example panoramic images described herein provide a 360-degree view of alocation, though other types of images may also be used. In addition,each panoramic image may be associated with geographic locationinformation indicating the location and, in some cases, the orientationat which the panoramic image was captured (e.g., which part of thepanoramic image is oriented towards “North”, etc.) as well as timestampinformation indicating the date and time at which the panoramic imagewas captured.

The storage system 150 may also store 3D geometry data. As explainedabove and described in more detail below, this 3D geometry data maycorrespond to points on the surface of any objects in the plurality ofpanoramic image. The 3D geometry data may provide the position (x,y,z)of points relative to a particular coordinate system (e.g. relative to aposition of a LIDAR system that generated the geometry data or a globalpositioning system (GPS) such as latitude, longitude, and altitudecoordinates).

Storage system 150 may also store map information. The map informationmay be an image based map or may include a plurality of vectors used toidentify the shape, orientation, and other characteristics of streetsused to display a map. In this regard, the streets may be divided intodiscrete road segments. As an example, collection of such road segments(or vectors) may be used to display a map.

As with memory 114, storage system 150 can be of any type ofcomputerized storage capable of storing information accessible by server110, such as a hard-drive, memory card, ROM, RAM, DVD, CD-ROM,write-capable, and read-only memories. In addition, storage system 150may include a distributed storage system where data is stored on aplurality of different storage devices which may be physically locatedat the same or different geographic locations. Storage system 150 may beconnected to the computing devices via the network 180 as shown in FIG.1 and/or may be directly connected to or incorporated into any of thecomputing devices 110-140 (not shown).

Collection devices 160 and 170 may include a computing device,configured similarly to one of the server computing devices or clientcomputing devices with a processor and memory storing data andinstructions (not shown in FIG. 1 for simplicity). Collection devise 160and 170 may also provide all or some of the images of storage system150. Each of the collection devices 160 and 170 may include a camera orother information collection device. For example, collection device 160may include a camera 162 mounted on a vehicle. As the vehicle is drivenalong a street, the camera of collection device 160 may capturepanoramic images. In this regard, all or some of the panoramic images ofstorage system 150 may be considered “street level images.” As anotherexample, collection device 170 may include a camera rig attached to abackpack (e.g., for paths and other non-street areas), a smartphonecamera, a dedicated camera device, etc. which a person walks, bikes, orotherwise moves around with in order to capture panoramic images. Inaddition to capturing images, the collection devices and/or camera maybe configured to provide each panoramic image with a timestampindicating the date and time at which the image was captured. Thecaptured panoramic images and timestamps may be uploaded or downloadedto the storage system 150.

Each of collection devices 160 or 170 may include a position system 164in order to determine the camera's relative or absolute position on amap or on the Earth when an image is captured. For example, the positionsystem 164 may include a GPS receiver to determine the device'slatitude, longitude and/or altitude position and provide a two or threedimensional (2D or 3D) location at which each panoramic image wascaptured by the collection device. Other location systems such aslaser-based localization systems, inertial-aided GPS,trilateration/triangulation, or camera-based localization may also beused to identify the location of the vehicle. The location of thevehicle may include an absolute geographical location, such as latitude,longitude, and altitude as well as relative location information, suchas location relative to other cars immediately around it which can oftenbe determined with less noise than an absolute geographical location.

The positioning system 164 may also include other devices incommunication with the camera or collection device, such as anaccelerometer, gyroscope or another direction/speed detection device todetermine the orientation of the camera 162 when the panoramic image wascaptured. By way of example only, an acceleration device may determineits pitch, yaw or roll (or changes thereto) relative to the direction ofgravity or a plane perpendicular thereto. The device may also trackincreases or decreases in speed and the direction of such changes.

The collection device's provision of location and orientation data asset forth herein may be associated with the panoramic images as they arebeing captured and provided automatically to the storage system 150,other computing devices and combinations of the foregoing. Althoughcamera 162 and position system 164 are depicted within the collectiondevice 160, these components may or may not be included in the samephysical housing. In this regard, the position system 164 may be adifferent device from the camera 162 such that both components outputthe 2D or 3D location information and orientation information andpanoramic images to the collection device which processes these outputsin order to associate them with one another and provide them to thestorage system 150.

In some examples, the collection device 160 may include a LIDAR systemfor generating the 3D geometry data described above. For example, as avehicle is driven along the street, a LIDAR system may be used tocollect laser data or light intensity information which is convertedinto three dimensional points, which can then be used to determine pointclouds and/or the surfaces of objects. These objects will correspond toobjects that are included in a panoramic image that was captured by acamera, such as camera 162, at approximately the same geographiclocation as the laser data.

Example Methods

In order to provide a user with images, a first plurality of images,including panoramic images, may be captured and stored. These images maybe captured by one or more cameras, including cameras mounted on avehicle (or other device). If the camera is mounted on a vehicle, imagesmay be captured in a sequence as the camera is moved along. Each imagemay be associated with 2D or 3D location and orientation informationcorresponding to the geographic location where the panoramic image wascaptured as well as a timestamp indicating the date and time when theimage was captured. For example, as a collection device such ascollection device 160 is moved around, such as by driving a vehiclealong a street, camera 162 may capture panoramic images. At the sametime, the position system 164 may provide GPS coordinates for eachpanoramic image captured by camera 162. Each time the collection device160 captures a series of images may be considered a separate “run.”

The location at which a particular image was captured, which may bereferred to as the “snap location,” may be determined by associating theGPS coordinates of the capture device at the time each image was taken.In turn, the snap location may be used by the one or more servercomputing devices to select one or more panoramic images that werecaptured at approximately the same location but at different points intime. Here, a different point in time, refers to images that werecaptured on different days. In this regard, given a snap location of afirst panoramic image, other panoramic images of the storage system 150may be accessed by the one or more server computing devices 110 in orderto identify a second panoramic image having a snap location that is bothclosest to the snap location of the first panoramic image and has atimestamp which indicates that the second image was captured on adifferent day than the first panoramic image. In some instances if theclosest panoramic image for a different day is greater than a specifieddistance, for example, 15 meters or more, than no second panoramicimages may be selected for that particular day.

If there are multiple other runs for a given road segment, (e.g., one inAugust 2011, one in September 2012, etc.), the panoramic imagesassociated with such runs (as identified by the timestamps) may bequeried in groups such that a closest panoramic image along the roadsegment may be identified for each individual run. In this regard, aplurality of such second images, one for each run, may be selected basedon a particular first image. Any such second images may be provided fordisplay to a user in conjunction with the first image. For example, auser, such as user 220, may make a request to view a first panoramicimage using a client computing device, such as client computing device120, by selecting an option to view the first panoramic image, bysearching for the first panoramic image by entering a particularlocation into a search engine, selecting a point on a map correspondingto the 2D or 3D location of the first panoramic image, or in otherconventional ways. In response, the client computing device may send arequest for or identify the first panoramic image to the one or moreserver computing devices 110.

The one or more server computing devices may receive the request toidentify any second images for the first panoramic image. In oneexample, any of the selected second images described above may beassociated with the first panoramic image such that the server computingdevice 110, may use the first panoramic image to retrieve any secondimages. Thus, any second images may be selected in advance by the one ormore server computing devices, that is, before the user has requested toview the first image. Alternatively, the selection may be performed inreal time (e.g., without delay and in response to the request for oridentifying the first panoramic image) in order to keep the closestavailable images up to date. This may be especially useful as theplurality of images of the storage system 150 may change over time asadditional images are collected.

Once identified, the one or more server computing devices may providethe first panoramic image for display, as well as an option to view anyof the identified second images for display. For instance, when a userviews the first panoramic image, he or she may be provided with anoption to view one or more second images in conjunction with the firstpanoramic image or to switch to a view of one of the second panoramicimages. In some examples, any second images, although not immediatelydisplayed may also be provided to the client computing device, beforethe user has selected the option, in order to allow the client computingdevice to display them more quickly.

FIG. 3 is an example screen shot 300 which may be displayed to a user,such as user 220, on a display of a client computing device, such asdisplay 122 of client computing device 120. In this example, the screenshot 300 includes a display of a portion of the panoramic image 302, ora view port. This view port includes a particular orientation and zoomlevel which allows the user to view portions of buildings 304, 306, and308. In this example, panoramic image 302 may be considered a firstpanoramic image as described above. The screen shot 300 also includesdisplay box 310 which includes a first part with a clock icon 312 thatindicates that a second panoramic image is available for the panoramicimage 302. Display box 310 also includes other information such aslocation data 314 identifying an approximate location of the portion ofthe panoramic image 302.

By selecting the option to view a second panoramic image, the user maybe provided with a display of a portion of a second panoramic image. Forexample, as shown in example screen shot 400 of FIG. 4, once a user hasselected clock icon 312, the display box 310 changes to include a timewindow 402. Time window 402 includes thumbnail image 404, which may be aportion of a second panoramic image that was selected as having the samesnap location as panoramic image 302. In this example, the thumbnailimage 404 includes buildings 420, 422, and 424. Here, buildings 424 and420 may correspond to buildings 304 and 308, respectively of panoramicimage 302. However, building 422 does not correspond to building 306, asin this example, building 422 did not exist at the time that panoramicimage 302 was captured. Rather, at the time panoramic image 302 wascaptured, building 422 was replaced by building 306.

Time window 402 may also include a timeline 406 or other selectionarrangements which provides a number of different functions. In thisexample, timeline 406 indicates the quantity of available second imagesfor the panoramic image 302. As there are three points 408, 410, and 412on the timeline, this may indicate that there are images from at leasttwo different dates that correspond to the location of panoramic image302. A scroll marker 401 may be used to indicate the date that iscurrently being displayed within time window 402. For example, point408, as it is slightly larger than points 410 and 412, indicates thatscroll marker 401 is at location 408 and that thumbnail image 404 wascaptured in 2009. Assuming that image 302 is the most recent imageavailable for the current location, point 412 may indicate thatpanoramic image 302 was captured in 2013. Point 410 may further indicatethat another image, captured sometime between 2009 and 2013 is alsoavailable for viewing by the user. Thus, by manipulating scroll marker401 along timeline 406, the user may view other available panoramicimages, including the image corresponding to point 410 as well aspanoramic image 302 (corresponding to point 412) in the time window 402.Of course, other timelines may include fewer points than availablepanoramic images such that locations along the timeline between pointsmay also correspond to available panoramic images, and other suchmechanisms may be used to indicate to the user that second images areavailable.

As the user moves scroll marker 401 along timeline 406 from a first dateto a second date, the image displayed in time window 402 transitionsfrom a thumbnail image taken on the first date to a thumbnail imagetaken on a second date. In accordance with one aspect, the transitionbetween thumbnail images may include animation or effects. For example,as scroll marker 401 is moved from a first date to a second date, afirst thumbnail image displayed within time window 402 may begin to fadeout, while a second thumbnail image corresponding to the second date mayfade in, so as to replace the first thumbnail image. In another example,the movement of scroll marker 401 may cause the first thumbnail image toslide out of view within the time window 402 as the second thumbnailimage replaces the first thumbnail image by sliding into view.

FIG. 5 shows screenshot 500 in which a user has slid scroll marker 401to location 412 from location 408 shown in FIG. 4. As scroll marker 401moves from location 408 to location 412, the time window 402 transitionsfrom showing a thumbnail image 404 that was taken in 2009 to showing athumbnail image 504 that was taken in 2013. As described above, thetransition between these images may include image 404 fading away withintime window 402 as scroll marker moves away from location 408. Similarlyimage 504 may begin fade in within time window 402 as scroll marker 401approaches location 412. In addition, if any intermediate images areavailable between 2009 and 2013, time window 402 may also display thoseintermediate images as scroll marker 401 moves to a locationcorresponding to the date on which the intermediate image was taken. Forexample, location 410 may be associated with an image that was taken inthe year 2011. As scroll marker 401 moves between location 408 andlocation 412, time window 402 may transition from image 404 taken in2009 to an intermediate image taken in 2011, and then transition againfrom the intermediate image to image 504 taken in 2013.

Since 2013 is the same point in time as panoramic image 302 wascaptured, thumbnail image 504 may be based on a portion of panoramicimage 302 that is displayed in the main viewing area 510. Accordingly,thumbnail image 504 and the displayed portion of panoramic image 302 arethe same.

The location, orientation, and zoom level of the first panoramic imageshown in the main viewing area may be used to determine how to displaythe second thumbnail image within time window 402. For example, in FIG.4, the displayed snap location, orientation, and zoom level of thesecond image within time window 402 may be selected in order tocorrespond to the snap location, orientation, and zoom level of image302. In addition, if the location, orientation, or zoom level of image302 changes, the location, orientation, or zoom level of the secondimage within time window 402 may automatically change as well. Forexample, if the user pans image 302 to the left by 30 degree, image 404shown in time window 402 may automatically pan to the left by 30 degreesas well. This can be seen in FIG. 6, wherein the user has panned image302 to the left, thereby causing image 404 to pan by a correspondingamount, so that images 302 and 404 maintain corresponding orientations.In this way, the user may easily compare panoramic image 302 andthumbnail image 404 from various camera orientations and levels of zoom.Through this comparison, the user may determine how the displayedlocation has changed between the date thumbnail image 404 was taken andthe date panoramic image 302 was taken. For example, the user maycompare image panoramic image 302 and thumbnail image 404 of FIG. 4 todetermine that that building 306 did not exist in 2009, but was insteadbuilding 522. The user may then pan within panoramic image 302, causingan automatic panning of thumbnail image 404, so as to determine if anychanges have occurred to other objects in the area, including signs,roadways, buildings, trees, etc. In another aspect, user may pan or zoomwithin image 404 so as to cause an automatic panning or zooming of image302.

The three dimensional geometry data associated with a first panoramicimage may be used to determine the distance between the point of view ofthe main viewing area (e.g., where there is no zoom, the point of viewwould be the actual location of the first panoramic image) to an objectwithin the image. This distance, as well as the three dimensionalgeometry data associated with the thumbnail image, may then be used toadjust the zoom of the thumbnail image when the thumbnail image isdisplayed in connection with the first panoramic image. In this regard,the thumbnail image may be displayed such that objects in the thumbnailimage will appear to be the same distance from the user as those sameobjects in the main viewing area of the first panoramic image. Forexample, as can be seen from screen shot 600 of FIG. 6, the displayedportion of panoramic image 302 corresponds to the displayed portion ofpanoramic image 404. In this regard, both the orientations of thepanoramic images are corresponding as well as the zoom levels, eventhough they are not necessarily the same.

Similarly, the orientations of two images may be considered to becorresponding even if the two images do not face the exact samedirection. For example, orientations may be slightly different dependingon the 2D or 3D location of each panoramic image. In particular, if twoimages were captured at slightly different locations, the system mayadjust the orientation of the thumbnail image so that the same object orarea is displayed within the center of each image. This adjustment maybe based on the three dimensional geometry data that is associated witheach image, as well as the distance between the snap location of eachimage.

Returning to FIG. 4, in addition to panoramic image 302 and thumbnailimage 404. The client computing device 120 may display additionalrelated images 430-436. These related images 430-436 may be images thatare selected for display due to their relationship to panoramic image302 or thumbnail image 404. For example, related images 430-436 may beimages that represent different perspectives or camera orientations thatare available from the same location as images 302 and 404. Relatedimages 430-436 may also include images that depict nearby locations orrelated objects. For example, if image 302 shows a particular type ofrestaurant or a particular restaurant chain, related images 430-436 mayinclude images of other locations that contain the same type ofrestaurant or the same restaurant chain.

In one aspect, related images 430-436 may correspond with the imagebeing displayed in time window 402. Accordingly, as the user movesscroll marker 401 to different locations along timeline 406, relatedimages 430-436 may change so as to display images that corresponds tothe time period designated by scroll marker 401. For example, in FIG. 4,scroll marker 401 is at location 408 corresponding to February 2009.Accordingly, one or more of the related images 430-436 may be selectedfrom images that were captured on or around February 2009. In FIG. 5,scroll marker 401 is at location 412, which corresponds to April 2013.Related images 530-536 may therefore be selected from images that weretaken on or around April 2013.

In accordance with another aspect, the client user device may display aplurality of related images that were taken at different dates.Similarly to the thumbnail image displayed in time window 402, theserelated images may correspond to the location, orientation, and zoomlevel of the first panoramic image displayed in the main viewing area.For example, as shown in screen shot 700 of FIG. 7, related images730-734 each correspond to the location, orientation, and zoom level ofpanoramic image 702 and thumbnail image 404. As described above, thelocation, orientation, and zoom level of the related images 730-734 andpanoramic image 702 may each correspond to one another without matchingexactly. For example, related images 730-734 and panoramic image 702 mayhave been captured at slightly different locations, and the orientationand zoom level of related images 730-734 may be adjusted based on thisdifference in locations. As shown in screen shot 700, each of therelated images 730-734 was captured on a different date. Accordingly, auser may easily compare changes that have occurred to a location over aseries of dates. The dates of related images may be dependent on theimages that are available for the location and orientation beingdisplayed in the main viewing area. Related images 730-734 may includeevery available image that corresponds to the location and orientationof panoramic image 702 or may include only a subset of available images.For example, related images 730-734 may be selected for display so as toprovide no more than one image for a particular interval of time, suchas by providing one image for every year.

A visual indicia, such as icons 740 and 742, may be displayed to theuser to indicate that additional related images are available. Forexample, icon 740 indicates that at least one older image is availablefor the location corresponding to panoramic image 702, and icon 742indicates that at least one more recent image is available for thislocation. The user may view the additional images by selecting icon 740or 742 thereby causing the related image to scroll in the selecteddirection.

In accordance with one aspect, the user may switch between the displayedthumbnail image and the first panoramic image. For example, a user mayselect the thumbnail image displayed in the time window 402 or one ofthe points of timeline 406 using mouse pointer, finger and touchscreen.In response, the client computing device may transition from a displayof a first panoramic image to a display of the selected thumbnail image.In between, if needed, the client computing device may request thesecond paranoramic image from the one or more server computing devicesas well. In screen shot 700 of FIG. 7, the user has selected thumbnailimage 404, thereby causing main viewing area 510 to display the sameimage as panoramic image 702.

Flow diagram 800 of FIG. 8 is an example of some of the featuresdescribed above that may be performed by one or more computing devices,such as computing devices 110, described above. As shown in block 802 ofthis example, the one or more computing devices access a plurality ofpanoramic images. Each given panoramic image of the plurality ofpanoramic images may be associated with multi-dimensional locationinformation defined in at least two dimensions, uni-dimensional (1D)location information defined in only one dimension, three dimensional(3D) geometry data corresponding to a surface of an object depicted inthe given panoramic image, and time information identifying when thegiven panoramic image was captured. At block 804, a first panoramicimage, of the plurality of images, is provided for display to a user ina main viewing area. The first image may be provided in connection witha request from a user for a panoramic image that is associated with aparticular location. The first panoramic image may be the most recentpanoramic image available based on the identified time information. Atblock 806, the user may be provided with an indication that additionalimages are available for the particular location associated with thefirst panoramic image, and that these additional images were captured ondates that are different than the date on which the first panoramicimage was captured. For example, a timeline of dates may be displayed,wherein each date indicates that one or more additional images areavailable for the location of the first panoramic image.

A request from the user may be received, wherein the request identifiesa particular date for which a second image is to be displayed (block808). For example, a user may select a particular date within thedisplayed timeline. A thumbnail image that was captured at or near theselected date may then be provided for display (block 810). Thisthumbnail image may be provided for display so that the location,orientation, and level of zoom of the thumbnail image correspond to thelocation, orientation, and level of zoom of the first image. As statedabove, correspondence does not require an exact match. For example, thelocation of the first image may be determined to correspond to thelocation of the second image if the two images are within apredetermined distance from one another, such as being within ten feetof one another. Similarly, the orientation of each image may becorresponding if the same geographic area or object appears within thecenter of each of the images. In addition, the level of zoom of eachimage may be considered as corresponding to one another if each imageappears to be approximately the same distance from the same objectsshown in each image.

The user may change the selected time period, by for example, moving acursor along the displayed timeline from a first date to a second date.If a change in the selected time period is determined (block 812), thethumbnail image may be replaced with a new thumbnail image, wherein thenew thumbnail image corresponds to the newly selected date (block 814).The user may also change the perspective of the first image by, forexample panning the image to a different orientation or by changing thezoom level of the image. If a change in perspective is determined (block816), the perspective of the thumbnail image may be automaticallychanged so that the perspective of the thumbnail image continues tocorrespond with the perspective of the first image (block 818). Blocks812-818 may be repeated until the user no longer provides any additionalinput regarding the selected time period to be displayed or changes tothe perspective of the first image.

In accordance with one aspect, the displayed images may be altered basedon the date on which the image was captured. In particular, older imagesmay be altered so as to appear as if it has aged relative to more recentimages. The apparent aging of the images may be exaggerated relative toactual differences in the time periods for each image. For example,returning to FIG. 4, thumbnail image 404, which was captured in 2009,may be altered to appear as if it has aged in comparison to image 302,which was captured in 2013. These images may be altered by implementingany number of effects, such as by reducing the colors within the image,by adjusting the exposure, or by adding scratches, discolorations, orother imperfections to the image. These alterations may occur throughthe application of one or more filters. In addition, the alterations foreach displayed image may be increased as the user goes back in timewithin time window 402 by viewing increasingly older images. In thisway, the user is provided with an additional indication of the relativeage of the displayed images.

Unless otherwise stated, the foregoing alternative examples are notmutually exclusive, but may be implemented in various combinations toachieve unique advantages. As these and other variations andcombinations of the features discussed above can be utilized withoutdeparting from the subject matter defined by the claims, the foregoingdescription of the embodiments should be taken by way of illustrationrather than by way of limitation of the subject matter defined by theclaims. In addition, the provision of the examples described herein, aswell as clauses phrased as “such as,” “including” and the like, shouldnot be interpreted as limiting the subject matter of the claims to thespecific examples; rather, the examples are intended to illustrate onlyone of many possible embodiments. Further, the same reference numbers indifferent drawings can identify the same or similar elements.

1. A computer-implemented method for providing a thumbnail image thatcorresponds to a main image, the method comprising: selecting fordisplay on a graphical interface, by one or more computing devices, amain image at a first geographical location, wherein the main image isassociated with a first time; determining, by the one or more computingdevices, one or more thumbnail images based at least in part on thefirst geographical location, wherein the one or more thumbnail imagesare each associated with a time different than the first time;generating for display, by the one or more computing devices, the mainimage and an indication that the one or more thumbnail images eachassociated with a different time are available; providing for displayconcurrently with the main image, by the one or more computing devices,a selected one of the one or more thumbnail images; receiving, by theone or more computing devices, input representing a change of the mainimage from a first zoom level to a second zoom level; generating, by theone or more computing devices, a corresponding change in zoom level ofthe selected thumbnail image to the second zoom level; and providing fordisplay the selected thumbnail image at the second zoom level, so thatthe main image and the selected thumbnail image are presentedconcurrently at the second zoom level.
 2. The method of claim 1, whereinthe indication that the one or more thumbnail images are available is anicon arranged on the graphical interface.
 3. The method of claim 2,wherein the icon is a clock icon.
 4. The method of claim 2, wherein:prior to providing the selected thumbnail image, the method furtherincludes receiving a selection of the icon; and upon receiving theselection, generating a time window for display on the graphicalinterface, the time window including the selected thumbnail imagetherein.
 5. The method of claim 1, further comprising: receiving, by theone or more computing devices, input indicating a change of the mainimage from a first orientation to a second orientation; and generating,by the one or more computing devices, a corresponding change inorientation of the selected thumbnail image to the second orientation.6. The method of claim 1, further comprising: determining a distancebetween a point of view of a main viewing area of the graphicalinterface to an object within the main image based on three dimensionalgeometry data associated with the main image; wherein generating thecorresponding change in zoom level of the selected thumbnail image tothe second zoom level includes adjusting the zoom level of the selectedthumbnail image based on the determined distance, such that objects inthe selected thumbnail image appear to be the same distance from aviewer as those objects in the main viewing area for the main image. 7.The method claim 1, further comprising providing for display a timelinehaving a visual indicia of a given time period, wherein the timelineindicates a quantity of available thumbnail images associated withdifferent times during the given time period.
 8. The method of claim 7,wherein the timeline indicates at least one of an earliest date and amost current date of the thumbnail images during the given time period.9. The method of claim 7, wherein the timeline includes a scroll markerindicating a date of the selected thumbnail image.
 10. The method ofclaim 9, wherein, in response to receiving an input for a differentpoint in time, the method includes: adjusting a location of the scrollmarker on the timeline to correspond to the different point in time, andreplacing the selected thumbnail image with a different thumbnail image,the different thumbnail image corresponding to the different point intime.
 11. A system for providing a thumbnail image that corresponds to amain image, the system comprising one or more computing devices, the oneor more computing devices being configured to: select for display on agraphical interface a main image at a first geographical location,wherein the main image is associated with a first time; determine one ormore thumbnail images based at least in part on the first geographicallocation, wherein the one or more thumbnail images are each associatedwith a time different than the first time; generate for display the mainimage and an indication that the one or more thumbnail images eachassociated with a different time are available; provide for display,concurrently with the main image, a selected one of the one or morethumbnail images; receive input representing a change of the main imagefrom a first zoom level to a second zoom level; generate a correspondingchange in zoom level of the selected thumbnail image to the second zoomlevel; and provide for display the selected thumbnail image at thesecond zoom level, so that the main image and the selected thumbnailimage are presented concurrently at the second zoom level.
 12. Thesystem of claim 11, wherein the one or more computing devices arefurther configured to generate a time window for display on thegraphical interface, the time window including the selected thumbnailimage therein.
 13. The system of claim 11, wherein the one or morecomputing devices are further configured to: receive input indicating achange of the main image from a first orientation to a secondorientation; and generate a corresponding change in orientation of theselected thumbnail image to the second orientation.
 14. The system ofclaim 11, wherein the one or more computing devices are furtherconfigured to: determine a distance between a point of view of a mainviewing area of the graphical interface to an object within the mainimage based on three dimensional geometry data associated with the mainimage; wherein the corresponding change in zoom level of the selectedthumbnail image to the second zoom level is generated by adjusting thezoom level of the selected thumbnail image based on the determineddistance, such that objects in the selected thumbnail image appear to bethe same distance from a viewer as those objects in the main viewingarea for the main image.
 15. The system claim 11, wherein the one ormore computing devices are further configured to provide for display atimeline having a visual indicia of a given time period, the timelineindicating a quantity of available thumbnail images associated withdifferent times during the given time period.
 16. The system of claim15, wherein the timeline includes a scroll marker indicating a date ofthe selected thumbnail image, and in response to receiving an input fora different point in time, the one or more computing devices are furtherconfigured to: adjust a location of the scroll marker on the timeline tocorrespond to the different point in time, and replace the selectedthumbnail image with a different thumbnail image, the differentthumbnail image corresponding to the different point in time.
 17. Anon-transitory computer-readable storage medium on which computerreadable instructions of a program are stored, the instructions, whenexecuted by one or more processors, cause the one or more processors toperform a method, the method comprising: selecting for display on agraphical interface a main image at a first geographical location,wherein the main image is associated with a first time; determining oneor more thumbnail images based at least in part on the firstgeographical location, wherein the one or more thumbnail images are eachassociated with a time different than the first time; generating fordisplay the main image and an indication that the one or more thumbnailimages each associated with a different time are available; providingfor display concurrently with the main image, a selected one of the oneor more thumbnail images; receiving input representing a change of themain image from a first zoom level to a second zoom level; generating acorresponding change in zoom level of the selected thumbnail image tothe second zoom level; and providing, for display, the selectedthumbnail image at the second zoom level, so that the main image and theselected thumbnail image are presented concurrently at the second zoomlevel.
 18. The non-transitory computer-readable storage medium of claim17, wherein the method further comprises: receiving input indicating achange of the main image from a first orientation to a secondorientation; and generating a corresponding change in orientation of theselected thumbnail image to the second orientation.
 19. Thenon-transitory computer-readable storage medium of claim 17, wherein themethod further comprises: determining a distance between a point of viewof a main viewing area of the graphical interface to an object withinthe main image based on three dimensional geometry data associated withthe main image; wherein generating the corresponding change in zoomlevel of the selected thumbnail image to the second zoom level includesadjusting the zoom level of the selected thumbnail image based on thedetermined distance, such that objects in the selected thumbnail imageappear to be the same distance from a viewer as those objects in themain viewing area for the main image.
 20. The non-transitorycomputer-readable storage medium of claim 17, wherein the method furthercomprises providing for display a timeline having a visual indicia of agiven time period, and the timeline indicates a quantity of availablethumbnail images associated with different times during the given timeperiod.